import java.util.*;
import java.io.*;

public class Seccion implements Serializable {
	static final long serialVersionUID = 2034476302601696839L;
	
	private TreeMap<String, Estudiante> estudiantes = new TreeMap<String, Estudiante>();
	private Profesor profesor = null;
	private String numero;
	private boolean evaluado = false;
	
	public Seccion(String num) {
		numero = num;
	}
	
	public Profesor getProfesor() {
		return profesor;
	}
	
	public void setProfesor(Profesor profesor) {
		this.profesor = profesor;
	}
	
	public String getNumero() {
		return numero;
	}
	
	public void setNumero(String numero) {
		this.numero = numero;
	}
	
	public boolean inscribirEstudiante(Estudiante e) {
		if (estudiantes.containsKey(e.getCedula()))
			return false;
		
		estudiantes.put(e.getCedula(), e);
		return true;
	}
	
	public Collection<Estudiante> listarEstudiantes() {
		return estudiantes.values();
	}
	
	public void retirarEstudiante(String ced){
		estudiantes.remove(ced);
	}
	
	public void aplicarEvaluaciones(){
		Iterator<Estudiante> it = listarEstudiantes().iterator();
		while (it.hasNext()) {
			Estudiante e = it.next();
			
			e.presentarEvaluaciones();
			profesor.evaluarEstudiante(e);
		}
		
		evaluado = true;
	}
	
	public boolean estaEvaluado() {
		return evaluado;
	}
	
	public double promedioNotas(){
		double acum = 0.;
		
		Iterator<Estudiante> it = listarEstudiantes().iterator();
		while (it.hasNext()) acum += it.next().getNotaFinal();

		return acum / estudiantes.size();
	}
	
	public Estudiante buscarEstudiante(String ced) {
		return estudiantes.get(ced);
	}
}
